const path = require("path");
// const webpack = require("webpack");
// const CopyWebpackPlugin = require('copy-webpack-plugin');
function resolve(dir) {
  return path.join(__dirname, "", dir);
}
var { devServer } = require("./vue.devServer.js");
module.exports = {
  css: {
    //css相关
    extract: true, //是否抽离css为单独的文件(不抽离css使用图片时build会报错)
    sourceMap: false, //false表示去掉css的map文件
    loaderOptions: {
      // 向 CSS 相关的 loader 传递选项
      less: {
        //less 2.x ; less-loader 5.x
        javascriptEnabled: true
      }
    }
  },
  productionSourceMap: true, //如果您不需要生产时的源码映射，那么将此设置为false可以加速生产构建
  outputDir: "dist", //build生成文件的目录(默认值为"dist")
  assetsDir: "", //build时设置的资源目录(主要存放静态资源;例如:"assets")
  filenameHashing: false, //资源文件名是否使用hash值
  publicPath: "./", //修改资源引用路径为相对路径
  indexPath: "index.html", //
  pages: {
    //多页面配置
    index: {
      entry: "src/main.js", // entry for the page
      template: "public/index.html", //        the source template
      filename: "index.html", //       output as dist/index.html
      title: "api-doc"
    }
  },
  // pages: undefined, //单页页面配置
  devServer: devServer, //开发环境服务配置
  chainWebpack: (config) => {
    // console.log(config);
    config.module
      .rule("images")
      .use("url-loader")
      .loader("url-loader")
      .tap((options) => {
        options.limit = 1; //图片资源大小(单位B)为多大时使用base64压缩
        return options;
      });
    // config.module
    //   .rule("less")
    //   .use("style-loader")
    //   .loader("less-loader")
    //   .tap((options) => {
    //     options.lessOptions = {
    //       javascriptEnabled: true
    //     };
    //     return options;
    //   });

    config.optimization.splitChunks({}); //不进行拆包

    // const svgRule = config.module.rule("svg");
    // svgRule.uses.clear();
    // svgRule
    //   .use("babel-loader")
    //   .loader("babel-loader")
    //   .end()
    //   .use("vue-svg-loader")
    //   .loader("vue-svg-loader");

    // config.plugins.delete('prefetch');
    // config.plugins.delete('preload');
  }
  // configureWebpack: (config) => {
  //   // config.plugins.push(
  //   //   new webpack.ProvidePlugin({
  //   //     "@": path.resolve(__dirname, "./src"),
  //   //     // d3: path.resolve(__dirname, "./node_modules/d3/dist/d3.min.js"),
  //   //     // $: path.resolve(__dirname, "./node_modules/jquery/dist/jquery.min.js")
  //   //   })
  //   // );
  //   // config.externals = {
  //   //   d3: 'd3',
  //   //   jquery: '$'
  //   // };
  //   // config.plugins.push(
  //   //   new CopyWebpackPlugin([{
  //   //       from: path.join(__dirname, "/src/assets/images/"),
  //   //       to: "images"
  //   //     },
  //   //     {
  //   //       from: path.join(__dirname, "/src/plugins/"),
  //   //       to: "static/js"
  //   //     }
  //   //   ])
  //   // );
  // }
};
